home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / etc / init.d / sysklogd < prev    next >
Text File  |  2008-08-29  |  3KB  |  157 lines

  1. #! /bin/sh
  2. # /etc/init.d/sysklogd: start the system log daemon.
  3.  
  4. ### BEGIN INIT INFO
  5. # Provides:             sysklogd
  6. # Required-Start:       $local_fs $time
  7. # Required-Stop:        $local_fs $time
  8. # Should-Start:         $network
  9. # Should-Stop:          $network
  10. # Default-Start:        2 3 4 5
  11. # Default-Stop:         1
  12. # Short-Description:    System logger
  13. ### END INIT INFO
  14.  
  15. PATH=/bin:/usr/bin:/sbin:/usr/sbin
  16.  
  17. pidfile=/var/run/syslogd.pid
  18. binpath=/sbin/syslogd
  19.  
  20. test -x $binpath || exit 0
  21.  
  22. # syslogd options should be set in /etc/default/syslogd
  23. SYSLOGD=""
  24.  
  25. # user to run syslogd as - this can overriden in /etc/default/syslogd
  26. USER="syslog"
  27.  
  28. test ! -r /etc/default/syslogd || . /etc/default/syslogd
  29.  
  30. # allow ltsp to override
  31. test ! -r /etc/ltsp/syslogd || . /etc/ltsp/syslogd
  32.  
  33. # Figure out under which user syslogd should be running as
  34. if echo ${SYSLOGD} | grep -q '^.*-u[[:space:]]*\([[:alnum:]]*\)[[:space:]]*.*$'
  35. then
  36.     # A specific user has been set on the command line, try to extract it.
  37.     USER=$(echo ${SYSLOGD} | sed -e 's/^.*-u[[:space:]]*\([[:alnum:]]*\)[[:space:]]*.*$/\1/')
  38. else
  39.     # By default, run syslogd under the syslog user
  40.     SYSLOGD="${SYSLOGD} -u ${USER}"
  41. fi
  42.  
  43. # Unable to get the user under which syslogd should be running, stop.
  44. if [ -z "${USER}" ]
  45. then
  46.     log_failure_msg "Unable to get syslog user"
  47.     exit 1
  48. fi
  49.  
  50. . /lib/lsb/init-functions
  51.  
  52. create_xconsole()
  53. {
  54.     # Only proceed if /dev/xconsole is used at all
  55.     if ! grep -q '^[^#].*/dev/xconsole' /etc/syslog.conf
  56.     then
  57.     return
  58.     fi
  59.  
  60.     if [ ! -e /dev/xconsole ]; then
  61.     mknod -m 640 /dev/xconsole p
  62.     else
  63.     chmod 0640 /dev/xconsole
  64.     fi
  65.  
  66.     chown ${USER}:adm /dev/xconsole
  67.     test ! -x /sbin/restorecon || /sbin/restorecon /dev/xconsole
  68.  
  69. }
  70.  
  71. fix_log_ownership()
  72. {
  73.     for l in `syslogd-listfiles -a`
  74.     do
  75.         chown ${USER}:adm $l
  76.     done
  77. }
  78.  
  79. running()
  80. {
  81.     # No pidfile, probably no daemon present
  82.     #
  83.     if [ ! -f $pidfile ]
  84.     then
  85.     return 1
  86.     fi
  87.  
  88.     pid=`cat $pidfile`
  89.  
  90.     # No pid, probably no daemon present
  91.     #
  92.     if [ -z "$pid" ]
  93.     then
  94.     return 1
  95.     fi
  96.  
  97.     if [ ! -d /proc/$pid ]
  98.     then
  99.     return 1
  100.     fi
  101.  
  102.     cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1`
  103.  
  104.     # No syslogd?
  105.     #
  106.     if [ "$cmd" != "$binpath" ]
  107.     then
  108.     return 1
  109.     fi
  110.  
  111.     return 0
  112. }
  113.  
  114. case "$1" in
  115.   start)
  116.     log_begin_msg "Starting system log daemon..."
  117.     create_xconsole
  118.     fix_log_ownership
  119.     start-stop-daemon --start --quiet --pidfile $pidfile --name syslogd --startas $binpath -- $SYSLOGD
  120.     log_end_msg $?
  121.     ;;
  122.   stop)
  123.     log_begin_msg "Stopping system log daemon..."
  124.     start-stop-daemon --stop --quiet --pidfile $pidfile --name syslogd
  125.     log_end_msg $?
  126.     ;;
  127.   reload|force-reload)
  128.     log_begin_msg "Reloading system log daemon..."
  129.     fix_log_ownership
  130.     start-stop-daemon --stop --quiet --signal 1 --pidfile $pidfile --name syslogd
  131.     log_end_msg $?
  132.     ;;
  133.   restart)
  134.     log_begin_msg "Restarting system log daemon..."
  135.     start-stop-daemon --stop --retry 5 --quiet --pidfile $pidfile --name syslogd
  136.     fix_log_ownership
  137.     start-stop-daemon --start --quiet --pidfile $pidfile --name syslogd --startas $binpath -- $SYSLOGD
  138.     log_end_msg $?
  139.     ;;
  140.   reload-or-restart)
  141.     if running
  142.     then
  143.     $0 reload
  144.     else
  145.     $0 start
  146.     fi
  147.     ;;
  148.   status)
  149.     status_of_proc -p $pidfile $binpath syslogd && exit 0 || exit $?
  150.     ;;
  151.   *)
  152.     log_success_msg "Usage: /etc/init.d/sysklogd {start|stop|reload|restart|force-reload|reload-or-restart|status}"
  153.     exit 1
  154. esac
  155.  
  156. exit 0
  157.